package mediatheque.model;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class EmprunteurModel extends PersonneModel {

	private static final long serialVersionUID = -3957579589189569134L;
	private static int NOMBRE_EMPRUNTEURS = 0;
	
	public EmprunteurModel() {
		this("N/A", "N/A", "N/A", "N/A");
	}
	
	public EmprunteurModel(String nom, String prenom, String email, String adresse) {
		super(nom, prenom, email, adresse);
		NOMBRE_EMPRUNTEURS++;
		setIdentifiant(genererIdentifiant());
	}

	private String genererIdentifiant() {
		return "EM-"+NOMBRE_EMPRUNTEURS;
	}
	
	@Override
	public String toString() {
		return "Emprunteur id="+identifiant;
	}
	

	private void writeObject(ObjectOutputStream oos) throws IOException {
		oos.defaultWriteObject();
		oos.writeObject(new Integer(NOMBRE_EMPRUNTEURS));
	}

	private void readObject(ObjectInputStream ois)
			throws ClassNotFoundException, IOException {
		ois.defaultReadObject();
		NOMBRE_EMPRUNTEURS = (Integer) ois.readObject();
	}

	public boolean ressemble(String id, String nom, String prenom,String email, String adresse) {
		return (getIdentifiant().toLowerCase().contains(id.toLowerCase()) &&
				getNom().toLowerCase().contains(nom.toLowerCase()) &&
				getPrenom().toLowerCase().contains(prenom.toLowerCase()) &&
				getEmail().toLowerCase().contains(email.toLowerCase()) &&
				getAdresse().toLowerCase().contains(adresse.toLowerCase()));
	}

	public boolean ressemble(String emp) {
		return (getIdentifiant().toLowerCase().contains(emp.toLowerCase()) ||
				getNom().toLowerCase().contains(emp.toLowerCase()) ||
				getPrenom().toLowerCase().contains(emp.toLowerCase()));
	}

	
}
